In recent years, digital cameras (image sensing devices) which can sense an image and can convert the sensed image into digital image data by a simple operation have been popularly used. When an image sensed by such camera is printed and is used as a photograph, it is a common practice to temporarily download the sensed digital image data from a digital camera to a PC (computer), to execute an image process by that PC, and to output the processed image data from the PC to a color printer, thus printing an image.
By contrast, a color print system which allows a digital camera to directly transfer digital image data to a color printer without the intervention of any PC and can print it out (to be referred to as a direct print process hereinafter), a so-called photo-direct (PD) printer which can receive a memory card, which is mounted on a digital camera and stores sensed images, and can print sensed images, and the like have recently been developed (see Japanese Patent Laid-Open No. 2003-061034).
Such direct print process is originally a model-dependent print function that can be implemented between a camera and printer of an identical vendor. However, in recent years, the standardization in these industries has progressed, and an environment that allows a direct print process by connecting a camera and printer of different vendors irrespective of manufacturers has been created.
In this manner, in order to implement a direct print function independent from vendors, at least one of a device that supplies image data and an image output device that receives and print the image data may acquire functions (to be referred to as capability data hereinafter) of the other device. If the direct print function is implemented by operating a camera interface by a user, the camera must acquire capability data of a printer, which is used to print an image, in advance. For this purpose, a command for exchanging capability data between the camera and printer must be defined, a communication specification of the command must be defined, and the command must be exchanged according to the communication specification. Then, each other's functions are confirmed by interpreting the command, and a print command (to be referred to as a print job hereinafter) according to a print instruction from the user must be appropriately generated in accordance with the capability data of the printer. That is, the camera must be designed to be able to generate a plurality of print jobs in correspondence with the capability data of the printer, and such design imposes a very heavy load on the camera.
When a request using a command and a response to the request are exchanged so as to acquire such function information, a duration of time-out of the command is often not specified. Even when print data begins to be exchanged immediately after generation of a request using the command, since such process is done in a lower layer such as a transport layer, physical layer, or the like, an application cannot often recognize the beginning of data transfer. In such case, the application may determine that a response is merely late, and may execute a time-out process when the set duration of time-out has elapsed, although data transfer is in progress.